package Day016_字符流_Properties类.demo03_属性集;

import java.util.Properties;
import java.util.Set;

/**
 * @author zhangyan
 * @date 2020/5/8 11:05
 */
/*
    概述: java.util.Properties 继承于 Hashtable ，来表示一个持久的属性集。

    特点:
         Properties 继承于 Hashtable,而Hashtable又实现 Map集合,当成双列集合使用 ---> 一般不用
         它使用键值结构存储数据，每个键及其对应值都是一个字符串。

    作用:
        表示属性集,可以 与流结合 来加载配置文件中的信息
        注意:配置文件中的数据要以键值对的形式存储,空格,等号,冒号分隔

    构造方法:
         public Properties() :创建一个空的属性列表

    基本的存储方法:
         (除了Map集合的put keySet values...等等方法之外,特有的)
         public Object setProperty(String key, String value) ： 保存一对属性。
         public String getProperty(String key) ：使用此属性列表中指定的键搜索属性值。
         public Set<String> stringPropertyNames() ：所有键的名称的集合。


    与流相关的方法:
        public void load(Reader reader): 加载Reader对象指定的数据源文件的数据到Properties对象中  (推荐)
        public void load(InputStream inStream): 加载InputStream对象指定的数据源文件的数据到Properties对象中

 */
public class Test1_Properties工具类 {
    public static void main(String[] args) {

        //创建Properties对象
        Properties pro = new Properties();

        //添加键值对
        //pro.put();也可以
        pro.setProperty("username", "admin");
        pro.setProperty("password", "12345");

        System.out.println(pro); // 无序
        //获取该对象的所有键
        Set<String> keySet = pro.stringPropertyNames();

        //循环遍历所有的键
        for (String s : keySet) {
            //键找值
            String values = pro.getProperty(s);
            System.out.println("values:" + values);
        }
    }
}
